using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._ServerTools._Publishing
{
    /// <summary>
    /// <para>Upload Service Definition</para>
    /// <para>Uploads and shares a web layer, web tool, or service to ArcGIS Online, ArcGIS Enterprise, or ArcGIS Server.</para>
    /// <para>将 Web 图层、Web 工具或服务上传并共享到 ArcGIS Online、ArcGIS Enterprise 或 ArcGIS Server。</para>
    /// </summary>    
    [DisplayName("Upload Service Definition")]
    public class UploadServiceDefinition : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public UploadServiceDefinition()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_in_sd_file">
        /// <para>Service Definition</para>
        /// <para>The service definition file (.sd) that contains all the information needed to share a web layer, web tool, or service.</para>
        /// <para>服务定义文件 （.sd），其中包含共享 Web 图层、Web 工具或服务所需的所有信息。</para>
        /// </param>
        /// <param name="_in_server">
        /// <para>Server</para>
        /// <para><xdoc>
        ///   <para>The server type. The following server types are supported:
        ///   <bulletList>
        ///     <bullet_item>My Hosted Services—Use when sharing a hosted web layer to ArcGIS Online or ArcGIS Enterprise. Enter My Hosted Services for the server connection. Capitalize the first letter of each word and include a space between each word.  </bullet_item><para/>
        ///     <bullet_item>HOSTING_SERVER—Use when sharing a hosted web layer to ArcGIS Online or ArcGIS Enterprise.  </bullet_item><para/>
        ///     <bullet_item>The URL to the ArcGIS Enterprise portal federated server—Use when sharing a web tool or map image layer to an ArcGIS Enterprise portal federated server.  </bullet_item><para/>
        ///     <bullet_item>An ArcGIS Server connection—Use when sharing a map or geoprocessing service to ArcGIS Server. You can use ArcGIS Server connections listed under the Servers node in the Project window, or you can browse to a folder where server connection files are stored.  </bullet_item><para/>
        ///     <bullet_item>A URL to ArcGIS Server—Use when sharing a map or geoprocessing service to ArcGIS Server. You can specify the URL to ArcGIS Server provided a publisher connection to ArcGIS Server has been added to the ArcGIS Pro project, and you're opening the project in the script or you're running the tool in ArcGIS Pro.  </bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        /// </xdoc></para>
        /// <para><xdoc>
        /// <para>服务器类型。支持以下服务器类型：
        ///   <bulletList>
        ///     <bullet_item>我的托管服务 - 将托管 Web 图层共享到 ArcGIS Online 或 ArcGIS Enterprise 时使用。输入“我的托管服务”作为服务器连接。将每个单词的第一个字母大写，并在每个单词之间包含一个空格。 </bullet_item><para/>
        ///     <bullet_item>HOSTING_SERVER - 将托管 Web 图层共享到 ArcGIS Online 或 ArcGIS Enterprise 时使用。</bullet_item><para/>
        ///     <bullet_item>ArcGIS Enterprise 门户联合服务器的 URL - 将 Web 工具或地图图像图层共享到 ArcGIS Enterprise 门户联合服务器时使用。</bullet_item><para/>
        ///     <bullet_item>ArcGIS Server 连接 - 在将地图或地理处理服务共享到 ArcGIS Server 时使用。您可以使用工程窗口中服务器节点下列出的 ArcGIS Server 连接，也可以浏览至存储服务器连接文件的文件夹。 </bullet_item><para/>
        ///     <bullet_item>ArcGIS Server 的 URL - 将地图或地理处理服务共享到 ArcGIS Server 时使用。如果已将与 ArcGIS Server 的发布者连接添加到 ArcGIS Pro 工程中，并且您在脚本中打开工程或在 ArcGIS Pro 中运行该工具，则可以指定 ArcGIS Server 的 URL。 </bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        /// </xdoc></para>
        /// </param>
        public UploadServiceDefinition(object _in_sd_file, object _in_server)
        {
            this._in_sd_file = _in_sd_file;
            this._in_server = _in_server;
        }
        public override string ToolboxName => "Server Tools";

        public override string ToolName => "Upload Service Definition";

        public override string CallName => "server.UploadServiceDefinition";

        public override List<string> AcceptEnvironments => [];

        public override object[] ParameterInfo => [_in_sd_file, _in_server, _in_service_name, _in_cluster, _in_folder_type.GetGPValue(), _in_folder, _in_startupType.GetGPValue(), _in_override.GetGPValue(), _in_my_contents.GetGPValue(), _in_public.GetGPValue(), _in_organization.GetGPValue(), _in_groups, _out_soap_svc_url, _out_rest_svc_url, _out_mapServiceItemID, _out_featServiceItemID, _out_cached_service, _out_featureServiceURL, _out_mapServiceURL, _out_LayerIDMap, _out_standaloneTableIDMap, _out_vectorTileServiceID, _out_vectorTileServiceURL];

        /// <summary>
        /// <para>Service Definition</para>
        /// <para>The service definition file (.sd) that contains all the information needed to share a web layer, web tool, or service.</para>
        /// <para>服务定义文件 （.sd），其中包含共享 Web 图层、Web 工具或服务所需的所有信息。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Service Definition")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _in_sd_file { get; set; }


        /// <summary>
        /// <para>Server</para>
        /// <para><xdoc>
        ///   <para>The server type. The following server types are supported:
        ///   <bulletList>
        ///     <bullet_item>My Hosted Services—Use when sharing a hosted web layer to ArcGIS Online or ArcGIS Enterprise. Enter My Hosted Services for the server connection. Capitalize the first letter of each word and include a space between each word.  </bullet_item><para/>
        ///     <bullet_item>HOSTING_SERVER—Use when sharing a hosted web layer to ArcGIS Online or ArcGIS Enterprise.  </bullet_item><para/>
        ///     <bullet_item>The URL to the ArcGIS Enterprise portal federated server—Use when sharing a web tool or map image layer to an ArcGIS Enterprise portal federated server.  </bullet_item><para/>
        ///     <bullet_item>An ArcGIS Server connection—Use when sharing a map or geoprocessing service to ArcGIS Server. You can use ArcGIS Server connections listed under the Servers node in the Project window, or you can browse to a folder where server connection files are stored.  </bullet_item><para/>
        ///     <bullet_item>A URL to ArcGIS Server—Use when sharing a map or geoprocessing service to ArcGIS Server. You can specify the URL to ArcGIS Server provided a publisher connection to ArcGIS Server has been added to the ArcGIS Pro project, and you're opening the project in the script or you're running the tool in ArcGIS Pro.  </bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        /// </xdoc></para>
        /// <para><xdoc>
        /// <para>服务器类型。支持以下服务器类型：
        ///   <bulletList>
        ///     <bullet_item>我的托管服务 - 将托管 Web 图层共享到 ArcGIS Online 或 ArcGIS Enterprise 时使用。输入“我的托管服务”作为服务器连接。将每个单词的第一个字母大写，并在每个单词之间包含一个空格。 </bullet_item><para/>
        ///     <bullet_item>HOSTING_SERVER - 将托管 Web 图层共享到 ArcGIS Online 或 ArcGIS Enterprise 时使用。</bullet_item><para/>
        ///     <bullet_item>ArcGIS Enterprise 门户联合服务器的 URL - 将 Web 工具或地图图像图层共享到 ArcGIS Enterprise 门户联合服务器时使用。</bullet_item><para/>
        ///     <bullet_item>ArcGIS Server 连接 - 在将地图或地理处理服务共享到 ArcGIS Server 时使用。您可以使用工程窗口中服务器节点下列出的 ArcGIS Server 连接，也可以浏览至存储服务器连接文件的文件夹。 </bullet_item><para/>
        ///     <bullet_item>ArcGIS Server 的 URL - 将地图或地理处理服务共享到 ArcGIS Server 时使用。如果已将与 ArcGIS Server 的发布者连接添加到 ArcGIS Pro 工程中，并且您在脚本中打开工程或在 ArcGIS Pro 中运行该工具，则可以指定 ArcGIS Server 的 URL。 </bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Server")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _in_server { get; set; }


        /// <summary>
        /// <para>Service Name</para>
        /// <para>The service name that will override the current service name specified in the service definition.</para>
        /// <para>将覆盖服务定义中指定的当前服务名称的服务名称。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Service Name")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _in_service_name { get; set; } = null;


        /// <summary>
        /// <para>Cluster</para>
        /// <para><xdoc>
        ///   <para>The cluster name that will override the current cluster to which the service has been assigned. You must choose from clusters on the specified server.</para>
        ///   <para>Clusters are deprecated at ArcGIS Enterprise 10.5.1. This parameter will be ignored for servers that do not support multiple clusters.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>将覆盖已将服务分配到的当前集群的集群名称。您必须从指定服务器上的集群中进行选择。</para>
        ///   <para>ArcGIS Enterprise 10.5.1 中已弃用集群。对于不支持多个集群的服务器，将忽略此参数。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Cluster")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _in_cluster { get; set; } = null;


        /// <summary>
        /// <para>Folder Type</para>
        /// <para><xdoc>
        ///   <para>Specifies the folder type that will be used to determine the source for the folder. The default is to get a folder from the service definition. You can also get a list of existing folders on the specified online server, or you can specify that a new folder be created once you share the web layer or service.</para>
        ///   <bulletList>
        ///     <bullet_item>New—A new folder will be created.</bullet_item><para/>
        ///     <bullet_item>Existing—An existing folder on the server will be used.</bullet_item><para/>
        ///     <bullet_item>From Service Definition—The folder in the service definition will be used. This is the default.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定将用于确定文件夹源的文件夹类型。默认设置是从服务定义中获取文件夹。您还可以获取指定在线服务器上现有文件夹的列表，也可以指定在共享 Web 图层或服务后创建一个新文件夹。</para>
        ///   <bulletList>
        ///     <bullet_item>新建 - 将创建一个新文件夹。</bullet_item><para/>
        ///     <bullet_item>现有 - 将使用服务器上的现有文件夹。</bullet_item><para/>
        ///     <bullet_item>从服务定义 - 将使用服务定义中的文件夹。这是默认设置。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Folder Type")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _in_folder_type_value? _in_folder_type { get; set; } = null;

        public enum _in_folder_type_value
        {
            /// <summary>
            /// <para>From Service Definition</para>
            /// <para>From Service Definition—The folder in the service definition will be used. This is the default.</para>
            /// <para>从服务定义 - 将使用服务定义中的文件夹。这是默认设置。</para>
            /// </summary>
            [Description("From Service Definition")]
            [GPEnumValue("FROM_SERVICE_DEFINITION")]
            _FROM_SERVICE_DEFINITION,

            /// <summary>
            /// <para>Existing</para>
            /// <para>Existing—An existing folder on the server will be used.</para>
            /// <para>现有 - 将使用服务器上的现有文件夹。</para>
            /// </summary>
            [Description("Existing")]
            [GPEnumValue("EXISTING")]
            _EXISTING,

            /// <summary>
            /// <para>New</para>
            /// <para>New—A new folder will be created.</para>
            /// <para>新建 - 将创建一个新文件夹。</para>
            /// </summary>
            [Description("New")]
            [GPEnumValue("NEW")]
            _NEW,

        }

        /// <summary>
        /// <para>Folder</para>
        /// <para>The folder for the web layer or service. If no folder is provided, the folder specified in the service definition will be used. If you specified New for Folder Type, use this parameter to provide a folder name. If you specified Existing for Folder Type, you can choose from the existing folders on the server.</para>
        /// <para>Web 图层或服务的文件夹。如果未提供文件夹，则将使用服务定义中指定的文件夹。如果为“文件夹类型”指定了“新建”，请使用此参数提供文件夹名称。如果为“文件夹类型”指定了“现有”，则可以从服务器上的现有文件夹中进行选择。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Folder")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _in_folder { get; set; } = null;


        /// <summary>
        /// <para>Start service immediately</para>
        /// <para><xdoc>
        ///   <para>Specifies whether the service will be started after sharing.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The service will be started after sharing. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The service will not be started after sharing.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定共享后是否启动服务。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 共享后将启动服务。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 共享后不会启动服务。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Start service immediately")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _in_startupType_value _in_startupType { get; set; } = _in_startupType_value._true;

        public enum _in_startupType_value
        {
            /// <summary>
            /// <para>STARTED</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("STARTED")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>STOPPED</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("STOPPED")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Override service definition sharing properties</para>
        /// <para><xdoc>
        ///   <para>Specifies whether the sharing properties set in the service definition will be overridden. These properties define if, and how, you are sharing the web layer or web tool with ArcGIS Online or ArcGIS Enterprise. Sharing the web layer exposes it for others to use.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The sharing properties set in the service definition will be overridden.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The sharing properties set in the service definition will not be overridden; they will be used. This is the default.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>You must be signed in to ArcGIS Online or ArcGIS Enterprise to override sharing properties.</para>
        ///   <para>This parameter is not honored when sharing to ArcGIS Server.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否重写服务定义中设置的共享属性。这些属性用于定义是否以及如何与 ArcGIS Online 或 ArcGIS Enterprise 共享 Web 图层或 Web 工具。共享 Web 图层会将其公开以供其他人使用。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 服务定义中设置的共享属性将被覆盖。</bullet_item><para/>
        ///     <bullet_item>未选中 - 服务定义中设置的共享属性不会被覆盖;它们将被使用。这是默认设置。</bullet_item><para/>
        ///   </bulletList>
        ///   <para>您必须登录到 ArcGIS Online 或 ArcGIS Enterprise 才能覆盖共享属性。</para>
        ///   <para>共享到 ArcGIS Server 时，不支持此参数。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Override service definition sharing properties")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _in_override_value _in_override { get; set; } = _in_override_value._false;

        public enum _in_override_value
        {
            /// <summary>
            /// <para>OVERRIDE_DEFINITION</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("OVERRIDE_DEFINITION")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>USE_DEFINITION</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("USE_DEFINITION")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Share on ArcGIS Online</para>
        /// <para><xdoc>
        ///   <para>Specifies whether web layers and web tools will be shared.</para>
        ///   <para>All shared web layers and web tools are available through My Content. Even if you only want to share with a specific group in your organization, the web layer or web tool will also be shared through My Content.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The web layer or web tool will be shared on ArcGIS Online or ArcGIS Enterprise. The web layer or web tool will be listed under My Content.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The web layer or web tool will not be shared on ArcGIS Online or ArcGIS Enterprise and will be inaccessible to other ArcGIS Online or ArcGIS Enterprise users and clients on the web. This is the default.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>You must be signed in to ArcGIS Online or ArcGIS Enterprise to override sharing properties.</para>
        ///   <para>This parameter is not honored when sharing to ArcGIS Server.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否共享 Web 图层和 Web 工具。</para>
        ///   <para>所有共享的 Web 图层和 Web 工具均可通过我的内容获得。即使您只想与组织中的特定群组共享，Web 图层或 Web 工具也将通过我的内容进行共享。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - Web 图层或 Web 工具将在 ArcGIS Online 或 ArcGIS Enterprise 上共享。Web 图层或 Web 工具将列在我的内容下。</bullet_item><para/>
        ///     <bullet_item>未选中 - Web 图层或 Web 工具不会在 ArcGIS Online 或 ArcGIS Enterprise 上共享，并且 Web 上的其他 ArcGIS Online 或 ArcGIS Enterprise 用户和客户端将无法访问。这是默认设置。</bullet_item><para/>
        ///   </bulletList>
        ///   <para>您必须登录到 ArcGIS Online 或 ArcGIS Enterprise 才能覆盖共享属性。</para>
        ///   <para>共享到 ArcGIS Server 时，不支持此参数。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Share on ArcGIS Online")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _in_my_contents_value _in_my_contents { get; set; } = _in_my_contents_value._false;

        public enum _in_my_contents_value
        {
            /// <summary>
            /// <para>SHARE_ONLINE</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("SHARE_ONLINE")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>NO_SHARE_ONLINE</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("NO_SHARE_ONLINE")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Share With Everyone (Public)</para>
        /// <para><xdoc>
        ///   <para>Specifies whether the web layer or web tool will be available to the public.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The web layer or web tool will be available to the public.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The web layer web tool will not be available to the public. This is the default.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>You must be signed in to a portal to override sharing properties.</para>
        ///   <para>This parameter is not honored when sharing to ArcGIS Server.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定 Web 图层或 Web 工具是否可供公众使用。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - Web 图层或 Web 工具将向公众开放。</bullet_item><para/>
        ///     <bullet_item>未选中 - Web 图层 Web 工具将不向公众开放。这是默认设置。</bullet_item><para/>
        ///   </bulletList>
        ///   <para>您必须登录到门户才能覆盖共享属性。</para>
        ///   <para>共享到 ArcGIS Server 时，不支持此参数。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Share With Everyone (Public)")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _in_public_value _in_public { get; set; } = _in_public_value._false;

        public enum _in_public_value
        {
            /// <summary>
            /// <para>PUBLIC</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("PUBLIC")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>PRIVATE</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("PRIVATE")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Share With Your Organization</para>
        /// <para><xdoc>
        ///   <para>Specifies whether the web layer or web tool will be shared with your organization.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The web layer or web tool will be shared with your organization.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The web layer or web tool will not be shared with your organization. This is the default.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>You must be signed in to ArcGIS Online or ArcGIS Enterprise to override sharing properties.</para>
        ///   <para>This parameter is not honored when sharing a map or geoprocessing service to ArcGIS Server.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否与组织共享 Web 图层或 Web 工具。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - Web 图层或 Web 工具将与您的组织共享。</bullet_item><para/>
        ///     <bullet_item>未选中 - 不会与您的组织共享 Web 图层或 Web 工具。这是默认设置。</bullet_item><para/>
        ///   </bulletList>
        ///   <para>您必须登录到 ArcGIS Online 或 ArcGIS Enterprise 才能覆盖共享属性。</para>
        ///   <para>将地图或地理处理服务共享到 ArcGIS Server 时，不支持此参数。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Share With Your Organization")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _in_organization_value _in_organization { get; set; } = _in_organization_value._false;

        public enum _in_organization_value
        {
            /// <summary>
            /// <para>SHARE_ORGANIZATION</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("SHARE_ORGANIZATION")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>NO_SHARE_ORGANIZATION</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("NO_SHARE_ORGANIZATION")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Share With These Groups</para>
        /// <para><xdoc>
        ///   <para>Specifies whether the web layer or web tool will be shared with specified groups within your organization.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The web layer or web tool will be shared with specified groups.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The web layer or web tool will not be shared with specified groups.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>You must be signed in to ArcGIS Online or ArcGIS Enterprise to override sharing properties.</para>
        ///   <para>This parameter is not honored when sharing to ArcGIS Server.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否与组织内的指定群组共享 Web 图层或 Web 工具。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - Web 图层或 Web 工具将与指定群组共享。</bullet_item><para/>
        ///     <bullet_item>未选中 - 不会与指定群组共享 Web 图层或 Web 工具。</bullet_item><para/>
        ///   </bulletList>
        ///   <para>您必须登录到 ArcGIS Online 或 ArcGIS Enterprise 才能覆盖共享属性。</para>
        ///   <para>共享到 ArcGIS Server 时，不支持此参数。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Share With These Groups")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public List<object> _in_groups { get; set; } = null;


        /// <summary>
        /// <para>SOAP Service URL</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("SOAP Service URL")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _out_soap_svc_url { get; set; }


        /// <summary>
        /// <para>REST Service URL</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("REST Service URL")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _out_rest_svc_url { get; set; }


        /// <summary>
        /// <para>Hosted Map Service Item ID</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Hosted Map Service Item ID")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _out_mapServiceItemID { get; set; }


        /// <summary>
        /// <para>Hosted Feature Service Item ID</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Hosted Feature Service Item ID")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _out_featServiceItemID { get; set; }


        /// <summary>
        /// <para>Cached Service</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Cached Service")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _out_cached_service { get; set; }


        /// <summary>
        /// <para>Feature Service URL</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Feature Service URL")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _out_featureServiceURL { get; set; }


        /// <summary>
        /// <para>Map Service URL</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Map Service URL")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _out_mapServiceURL { get; set; }


        /// <summary>
        /// <para>Layer ID</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Layer ID")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _out_LayerIDMap { get; set; }


        /// <summary>
        /// <para>Service URL</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Service URL")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _out_standaloneTableIDMap { get; set; }


        /// <summary>
        /// <para>Hosted Vector Tile Service Item ID</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Hosted Vector Tile Service Item ID")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _out_vectorTileServiceID { get; set; }


        /// <summary>
        /// <para>Vector Tile Service URL</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Vector Tile Service URL")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _out_vectorTileServiceURL { get; set; }


        public UploadServiceDefinition SetEnv()
        {
            base.SetEnv();
            return this;
        }

    }

}